package paidaxing.blog.comment.service;

import paidaxing.blog.comment.dto.LikeDTO;
import paidaxing.blog.comment.dto.request.LikeRequestDTO;

import java.util.List;

public interface LikeService {
    /**
     * 点赞/取消点赞
     *
     * @param likeRequestDTO 点赞请求DTO
     * @return 是否成功
     */
    boolean toggleLike(LikeRequestDTO likeRequestDTO);

    /**
     * 获取点赞状态
     *
     * @param userId 用户ID
     * @param targetType 目标类型
     * @param targetId 目标ID
     * @return 是否已点赞
     */
    boolean getLikeStatus(Long userId, String targetType, Long targetId);

    /**
     * 获取文章点赞列表
     *
     * @param postId 文章ID
     * @return 点赞列表
     */
    List<LikeDTO> getLikesByPostId(Long postId);

    /**
     * 获取评论点赞列表
     *
     * @param commentId 评论ID
     * @return 点赞列表
     */
    List<LikeDTO> getLikesByCommentId(Long commentId);

    /**
     * 获取目标点赞数
     *
     * @param targetType 目标类型
     * @param targetId 目标ID
     * @return 点赞数
     */
    Integer getLikeCount(String targetType, Long targetId);
}